
/**
 * 尊敬的用户，你好：页面 JS 面板是高阶用法，一般不建议普通用户使用，如需使用，请确定你具备研发背景，能够自我排查问题。
 * 我们可以用 JS 面板来开发一些定制度高功能，比如：调用API接口，自定义动作执行等等。
 */

// 当页面渲染完毕后马上调用下面的函数，这个函数是在当前页面 - 设置 - 生命周期 - 页面加载完成时中被关联的。
export function didMount() {
    console.log("「页面 JS」：当前页面地址 " + location.href);
}
export function codeChange() {
    // 宁夏 执法证件生成规则
    //1、执法证（共11位）："30"+上级区域（占2位）+区域（占2位）+执法领域（占2位）+3位顺序码
    // 2、监督证（共12位）："30"+上级区域（占2位）+区域（占2位）+执法领域（占3位）+3位顺序码
    // 备注：如果执法区域、执法领域所属证件超过999个，执法领域使用“90”代替。
    debugger;
    const self = this;

    try {

        const selectValue = self.$$("tree_single_select_bxf5qf").cValue;

        let regionCode = self.$$("tree_single_select_bxf5qf").selectedData[0].data.columns.code;
        let seniorCode = self.$$("tree_single_select_bxf5qf").selectedData[0].data.columns.parent_code;


        let lawEnforcementCode  = self.$$('single_select_g9qbw7').cValue;

        if (!selectValue || !lawEnforcementCode) {
            return;
        }


        if(seniorCode === null || seniorCode === ""){
            seniorCode = regionCode;
        }


        let code = '30' + seniorCode + regionCode + lawEnforcementCode;


        // 查询数据库
        api.EXEC_FORMULA(
            "ENTITY_SELECT_ONE('t_0ea5b0d8fffa45c38a929b2e1bcc1b3c', 'number_index', QUERY_EQ('region_code', '" + code + "'))"
        ).then(function(res) {
            console.log('Query result:', res);

            // 处理编号，默认值为0
            let numberIndex = parseInt(res && res.result ? res.result : 0) + 1;

            // 更新数据库
            return api.EXEC_FORMULA(
                "UPDATE('t_0ea5b0d8fffa45c38a929b2e1bcc1b3c', QUERY_EQ('region_code', '" + code + "'), '', ['number_index', '" + numberIndex + "'])"
            ).then(function(updateRes) {
                console.log('Update result:', updateRes);

                // 格式化编号并生成卡号
                let formattedIndex = numberIndex.toString().padStart(3, '0');
                let cardCode = code + formattedIndex;

                // 设置输入框值
                self.$$('text_input_g054uc').$$setValue(cardCode);
                console.log('Generated card code:', cardCode);
            });
        }).catch(function(err) {
            console.error('Operation failed:', err.message);
        });
    } catch (err) {
        console.error('System error:', err);
    }

}
